package com.vimi8.ebb.auth.model;

import java.util.Objects;

import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;



/**
 * 组织类型,用于内置括授权类型和权限范围.
 **/

/**
 * 组织类型,用于内置括授权类型和权限范围.
 */
@ApiModel(description = "组织类型,用于内置括授权类型和权限范围.")
@javax.annotation.Generated(value = "class io.swagger.codegen.languages.SpringCodegen", date = "2016-10-12T03:24:43.838Z")

public class OrganizationClass   {
  private String orgClass = null;

  private String grantTypes = null;

  private Boolean allowUsersToJoin = null;

  private String autoApproveResources = null;

  private String autoApproveScopes = null;

  private String manuApproveResources = null;

  private String manuApproveScopes = null;

  private String orgClassName = null;

  private String orgClassDescription = null;

  private Integer createTime = null;

  private Integer updateTime = null;
  private Integer orgClassType=1;
  @ApiModelProperty(value = "组织形式类型（1：农场组织，2：政府组织，3：vimi运营组织）")
  public Integer getOrgClassType() {
    return orgClassType;
  }

  public void setOrgClassType(Integer orgClassType) {
    this.orgClassType = orgClassType;
  }

  public OrganizationClass orgClass(String orgClass) {
    this.orgClass = orgClass;
    return this;
  }

   /**
   * 组织类型(农场组织：org_type_farm,集体经济组织：org_type_collective,服务站点：org_type_sit).
   * @return orgClass
  **/
  @ApiModelProperty(value = "组织类型(农场组织：org_type_farm,集体经济组织：org_type_collective,服务站点：org_type_sit).")
  public String getOrgClass() {
    return orgClass;
  }

  public void setOrgClass(String orgClass) {
    this.orgClass = orgClass;
  }

  public OrganizationClass grantTypes(String grantTypes) {
    this.grantTypes = grantTypes;
    return this;
  }

   /**
   * 授权类型.
   * @return grantTypes
  **/
  @ApiModelProperty(value = "授权类型.")
  public String getGrantTypes() {
    return grantTypes;
  }

  public void setGrantTypes(String grantTypes) {
    this.grantTypes = grantTypes;
  }

  public OrganizationClass allowUsersToJoin(Boolean allowUsersToJoin) {
    this.allowUsersToJoin = allowUsersToJoin;
    return this;
  }

   /**
   * 自动批准用户成为该域下的用户.
   * @return allowUsersToJoin
  **/
  @ApiModelProperty(value = "自动批准用户成为该域下的用户.")
  public Boolean getAllowUsersToJoin() {
    return allowUsersToJoin;
  }

  public void setAllowUsersToJoin(Boolean allowUsersToJoin) {
    this.allowUsersToJoin = allowUsersToJoin;
  }

  public OrganizationClass autoApproveResources(String autoApproveResources) {
    this.autoApproveResources = autoApproveResources;
    return this;
  }

   /**
   * 自动批准的资源列表,以|分割.
   * @return autoApproveResources
  **/
  @ApiModelProperty(value = "自动批准的资源列表,以|分割.")
  public String getAutoApproveResources() {
    return autoApproveResources;
  }

  public void setAutoApproveResources(String autoApproveResources) {
    this.autoApproveResources = autoApproveResources;
  }

  public OrganizationClass autoApproveScopes(String autoApproveScopes) {
    this.autoApproveScopes = autoApproveScopes;
    return this;
  }

   /**
   * 自动批准的权限范围，以|分割（只要成为client域下的用户,自动授权）.
   * @return autoApproveScopes
  **/
  @ApiModelProperty(value = "自动批准的权限范围，以|分割（只要成为client域下的用户,自动授权）.")
  public String getAutoApproveScopes() {
    return autoApproveScopes;
  }

  public void setAutoApproveScopes(String autoApproveScopes) {
    this.autoApproveScopes = autoApproveScopes;
  }

  public OrganizationClass manuApproveResources(String manuApproveResources) {
    this.manuApproveResources = manuApproveResources;
    return this;
  }

   /**
   * 手动批准的资源列表,以|分割.
   * @return manuApproveResources
  **/
  @ApiModelProperty(value = "手动批准的资源列表,以|分割.")
  public String getManuApproveResources() {
    return manuApproveResources;
  }

  public void setManuApproveResources(String manuApproveResources) {
    this.manuApproveResources = manuApproveResources;
  }

  public OrganizationClass manuApproveScopes(String manuApproveScopes) {
    this.manuApproveScopes = manuApproveScopes;
    return this;
  }

   /**
   * 手动批准的权限范围，以|分割（只要成为client域下的用户,自动授权）.
   * @return manuApproveScopes
  **/
  @ApiModelProperty(value = "手动批准的权限范围，以|分割（只要成为client域下的用户,自动授权）.")
  public String getManuApproveScopes() {
    return manuApproveScopes;
  }

  public void setManuApproveScopes(String manuApproveScopes) {
    this.manuApproveScopes = manuApproveScopes;
  }

  public OrganizationClass orgClassName(String orgClassName) {
    this.orgClassName = orgClassName;
    return this;
  }

   /**
   * 组织类型名称.
   * @return orgClassName
  **/
  @ApiModelProperty(value = "组织类型名称.")
  public String getOrgClassName() {
    return orgClassName;
  }

  public void setOrgClassName(String orgClassName) {
    this.orgClassName = orgClassName;
  }

  public OrganizationClass orgClassDescription(String orgClassDescription) {
    this.orgClassDescription = orgClassDescription;
    return this;
  }

   /**
   * 组织类型说明.
   * @return orgClassDescription
  **/
  @ApiModelProperty(value = "组织类型说明.")
  public String getOrgClassDescription() {
    return orgClassDescription;
  }

  public void setOrgClassDescription(String orgClassDescription) {
    this.orgClassDescription = orgClassDescription;
  }

  public OrganizationClass createTime(Integer createTime) {
    this.createTime = createTime;
    return this;
  }

   /**
   * 创建时间.
   * @return createTime
  **/
  @ApiModelProperty(value = "创建时间.")
  public Integer getCreateTime() {
    return createTime;
  }

  public void setCreateTime(Integer createTime) {
    this.createTime = createTime;
  }

  public OrganizationClass updateTime(Integer updateTime) {
    this.updateTime = updateTime;
    return this;
  }

   /**
   * 更新时间.
   * @return updateTime
  **/
  @ApiModelProperty(value = "更新时间.")
  public Integer getUpdateTime() {
    return updateTime;
  }

  public void setUpdateTime(Integer updateTime) {
    this.updateTime = updateTime;
  }


  @Override
  public boolean equals(Object o) {
    if (this == o) {
      return true;
    }
    if (o == null || getClass() != o.getClass()) {
      return false;
    }
    OrganizationClass organizationClass = (OrganizationClass) o;
    return Objects.equals(this.orgClass, organizationClass.orgClass) &&
        Objects.equals(this.grantTypes, organizationClass.grantTypes) &&
        Objects.equals(this.allowUsersToJoin, organizationClass.allowUsersToJoin) &&
        Objects.equals(this.autoApproveResources, organizationClass.autoApproveResources) &&
        Objects.equals(this.autoApproveScopes, organizationClass.autoApproveScopes) &&
        Objects.equals(this.manuApproveResources, organizationClass.manuApproveResources) &&
        Objects.equals(this.manuApproveScopes, organizationClass.manuApproveScopes) &&
        Objects.equals(this.orgClassName, organizationClass.orgClassName) &&
        Objects.equals(this.orgClassDescription, organizationClass.orgClassDescription) &&
        Objects.equals(this.createTime, organizationClass.createTime) &&
        Objects.equals(this.updateTime, organizationClass.updateTime);
  }

  @Override
  public int hashCode() {
    return Objects.hash(orgClass, grantTypes, allowUsersToJoin, autoApproveResources, autoApproveScopes, manuApproveResources, manuApproveScopes, orgClassName, orgClassDescription, createTime, updateTime);
  }

  @Override
  public String toString() {
    StringBuilder sb = new StringBuilder();
    sb.append("class OrganizationClass {\n");
    
    sb.append("    orgClass: ").append(toIndentedString(orgClass)).append("\n");
    sb.append("    grantTypes: ").append(toIndentedString(grantTypes)).append("\n");
    sb.append("    allowUsersToJoin: ").append(toIndentedString(allowUsersToJoin)).append("\n");
    sb.append("    autoApproveResources: ").append(toIndentedString(autoApproveResources)).append("\n");
    sb.append("    autoApproveScopes: ").append(toIndentedString(autoApproveScopes)).append("\n");
    sb.append("    manuApproveResources: ").append(toIndentedString(manuApproveResources)).append("\n");
    sb.append("    manuApproveScopes: ").append(toIndentedString(manuApproveScopes)).append("\n");
    sb.append("    orgClassName: ").append(toIndentedString(orgClassName)).append("\n");
    sb.append("    orgClassDescription: ").append(toIndentedString(orgClassDescription)).append("\n");
    sb.append("    createTime: ").append(toIndentedString(createTime)).append("\n");
    sb.append("    updateTime: ").append(toIndentedString(updateTime)).append("\n");
    sb.append("}");
    return sb.toString();
  }

  /**
   * Convert the given object to string with each line indented by 4 spaces
   * (except the first line).
   */
  private String toIndentedString(Object o) {
    if (o == null) {
      return "null";
    }
    return o.toString().replace("\n", "\n    ");
  }
}

